//package cn.bonoon.kernel.web.html.grid;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
//import cn.bonoon.handler.impl.AutoManager;
//import cn.bonoon.kernel.descriptors.UIClassDescriptor;
//import cn.bonoon.kernel.support.entities.Persistable;
//import cn.bonoon.kernel.support.models.AjaxNode;
//import cn.bonoon.kernel.support.services.SearchService;
//import cn.bonoon.kernel.web.handlers.ExecutableHandler;
//import cn.bonoon.kernel.web.handlers.loader.AjaxNodeLoaderHandler;
//import cn.bonoon.kernel.web.handlers.loader.ItemLoaderHandler;
//import cn.bonoon.kernel.web.handlers.loader.NodeLoaderHandler;
//import cn.bonoon.kernel.web.html.grid.StandardGridBuilder.GridInitializer;
//
//public class StandardGridInitializer<E extends Persistable> implements GridInitializer{
//	private final SearchService<E> searchService;
//	public StandardGridInitializer(SearchService<E> searchService){
//		this.searchService = searchService;
//	}
//	
//	private Map<String, Object> extendParameters;
//	
//	public void add(String name, Object value){
//		if(null == extendParameters){
//			extendParameters = new HashMap<String, Object>();
//		}
//		extendParameters.put(name, value);
//	}
//	
//	@Override
//	public String pageHander(UIClassDescriptor objectDescriptor, AutoManager initializer, Class<?> con, List<QueryParameter> queryParams) {
//		try {
//			ItemLoaderHandler<E> handler = new ItemLoaderHandler<E>(searchService, objectDescriptor.toClass(), con);
//			if(null != queryParams){
//				for(QueryParameter qp : queryParams){
//					handler.addQuery(qp.getName());
//				}
//			}
//			handler.setExtendParameters(extendParameters);
//			initializer.register(handler);
//			return handler.getUrl();
//		} catch (Exception e) {
//			return "";
//		}
//	}
//	
//	@Override
//	public String nodeHander(UIClassDescriptor objectDescriptor, AutoManager initializer) {
//		try{
//			ExecutableHandler handler;
//			if(objectDescriptor.isAssignable(AjaxNode.class)){
//				handler = new AjaxNodeLoaderHandler<E>(searchService, objectDescriptor.toClass());	
//			}else{
//				handler = new NodeLoaderHandler<E>(searchService, objectDescriptor.toClass());
//			}
//			initializer.register(handler);
//			return handler.getUrl();
//		}catch(Exception e){
//			return "";
//		}
//	}
//}
